﻿namespace Core.Ndatax.Domain.Ris.CheckInOrRegister
{
    public class CheckInOrRegisterDto
    {
        public string requestTime { get; set; } = DateTime.Now.ToString("yyyyMMddHHmmssfff");
        public Code Code { get; set; } = new();
        public Patientinfo PatientInfo { get; set; } = new();
        public Requestinfolist[] RequestInfoList { get; set; }
    }


    public class Code
    {
        public string ControlName { get; set; } = "";
        public string ActionName { get; set; } = "";
        public string msgId { get; set; } = "self" + DateTime.Now.ToString("yyyyMMddHHmmssfff");
        public string sender { get; set; } = "2.16.840.1.113883.4.487.2.1.5";
        public string receiver { get; set; } = "2.16.840.1.113883.4.487.2.1.3";
    }

    public class Patientinfo
    {
        public string patientID { get; set; }
        public string name { get; set; }
        public int sex { get; set; }
        public string datetimeOfBirth { get; set; }
        public string age { get; set; }
        public string weight { get; set; }
        public string idNumber { get; set; }
        public string nationality { get; set; }
        public string nativePlace { get; set; }
        public string placeOfBirth { get; set; }
        public string ethnicity { get; set; }
        public string occupation { get; set; }
        public string marriage { get; set; }
        public string bloodType { get; set; }
        public string address { get; set; }
        public string telephone { get; set; }
        public string familyTelephone { get; set; }
        public int patientType { get; set; }
        public int registrationType { get; set; }
        public string registrationDepID { get; set; }
        public string registrationDepName { get; set; }
        public string outpatientID { get; set; }
        public string hospitalizationID { get; set; }
        public string healthExaminationID { get; set; }
        public string emergencyNumber { get; set; }
        public string carteVitalNo { get; set; }
        public string socialSecurityCardNo { get; set; }
        public string medicalCardNo { get; set; }
        public string inpatientAreaID { get; set; }
        public string inpatientAreaName { get; set; }
        public string bedNumber { get; set; }
        public int visitNo { get; set; }
    }

    public class Requestinfolist
    {
        public Requestinfo RequestInfo { get; set; }
    }

    public class Requestinfo
    {
        public string sheetID { get; set; }
        public string inOrOutNumber { get; set; }
        public string checkType { get; set; }
        public int requestState { get; set; }
        public int feeState { get; set; }
        public string feeType { get; set; }
        public string defaultModality { get; set; }
        public string reqDate { get; set; }
        public string reqTime { get; set; }
        public string reqHospitalID { get; set; }
        public string reqHospitalName { get; set; }
        public string reqDepartmentID { get; set; }
        public string reqDepartmentName { get; set; }
        public string reqDoctorID { get; set; }
        public string reqDoctorName { get; set; }
        public string execDepartmentID { get; set; }
        public string execDepartmentName { get; set; }
        public int urgent { get; set; }
        public string medicalRecord { get; set; }
        public string clinicalDiagnosis { get; set; }
        public string examPurpose { get; set; }
        public string remark { get; set; }
        public string checkSpecialTypeID { get; set; }
        public string checkSpecialTypeName { get; set; }
        public int medicalOrderExecutionState { get; set; }
        public string sumFee { get; set; }
        public int inPriorityLevel { get; set; }
        public int InfectionFlag { get; set; }
        public string patientType { get; set; }
        public string outNum { get; set; }
        public string inNum { get; set; }
        public Examitemlist[] ExamItemList { get; set; }
        public Appointmentinfo AppointmentInfo { get; set; }
    }

    public class Appointmentinfo
    {
        public int appointmentState { get; set; }
        public string appointmentID { get; set; }
        public string appointmentDate { get; set; }
        public string appointmentTime { get; set; }
        public string resourceID { get; set; }
        public string appointmentAddr { get; set; }
        public string appointmentType { get; set; }
        public string operatorId { get; set; }
        public string operatorName { get; set; }
        public string operateDT { get; set; }
    }

    public class Examitemlist
    {
        public Examitem ExamItem { get; set; }
    }

    public class Examitem
    {
        public string itemID { get; set; }
        public string medicalOrderNo { get; set; }
        public string itemCode { get; set; }
        public string itemName { get; set; }
        public string examBodyPart { get; set; }
        public string examMethod { get; set; }
        public int isHaveExamFilm { get; set; }
        public int filmNum { get; set; }
        public string examQueueCode { get; set; }
        public string examQueueName { get; set; }
        public int examFloorID { get; set; }
        public string examFloorName { get; set; }
        public string examQueueNumber { get; set; }
        public int needGuidance { get; set; }
        public Feelist[] FeeList { get; set; }
    }

    public class Feelist
    {
        public Fee Fee { get; set; }
    }

    public class Fee
    {
        public int feeID { get; set; }
        public string chargeID { get; set; }
        public string chargeItemCode { get; set; }
        public string chargeItemName { get; set; }
        public string chargeItemUnit { get; set; }
        public string chargeItemPrice { get; set; }
        public int chargeItemNumber { get; set; }
        public int chargeItemType { get; set; }
    }
}



